<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>FW Installation</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body bgcolor="#e5e5e5" style="font-family: Tahoma;">
<style type="text/css">
  table{
	font-family: Verdana;
	font-size: 70%;
  }
  td{
    background-color: #efefef;
	padding: 3px;
  }
  .subHeader{
    background-color: #03699c;
	font-weight: bold;
	color: White;
  }
</style>
<h2>Установка CMS FW</h2>
<div style="border: 2px solid #006699; background-color: #FFFFFF; padding: 2px;">
<?php
	echo "Установка началась...<br>";
	/**
 	* инсталяция CMS
 	*
 	* @author Admin
 	* @package defaultPackage
 	*/
	//Определение типа ОС (Unix/Win)//////////////////////////////
	if (stripos($_SERVER["SERVER_SOFTWARE"],'win')===false)
	{
		//Unix
		define("INC_PATH_DELEM",':');
	}
	else
	{
		//Win
		define("INC_PATH_DELEM",';');
	}
	//Подключение PEAR////////////////////////////////////////////
	if (!isset($_POST['commHomeDir'])) { echo '<span style="color: Red;">Не установлена домашняя директория...<span><br>';	exit;}
	$home_dir = str_replace('\\','/',$_POST['commHomeDir']);
	if ($home_dir{strlen($home_dir)-1}!=='/') $home_dir.='/';
	$include_path = ini_get('include_path');
	
	$include_path = '.'.INC_PATH_DELEM.$home_dir.'framework/PEAR/';
	ini_set('include_path',$include_path);
	//////////////////////////////////////////////////////////////
	require_once('Config.php');

	$cfg['db_user'		]   = $_POST['dbLogin'];
	$cfg['db_password'	]   = $_POST['dbPassword'];
	$cfg['db_server'	]   = $_POST['dbServer'];
	$cfg['db_name'		]   = $_POST['dbName'];

	$cfg['absolute_url'	]	= $_POST['commDomainName'];
	$cfg['absolute_path']	= $home_dir;
	$cfg['PEAR_path'	]	= $home_dir.'framework/PEAR/'; //$_POST['commPearDir'];
	$cfg['fw_path'		]	= $home_dir.'framework/'; //$_POST['commCMSDir'];
	$cfg['admin_path'	]	= $home_dir.'framework/admin/'; //$_POST['commAdminCMSDir'];
	$cfg['db_tbl_prefix'] 	= $_POST['tablePrefix'];
	$cfg['inc_path_delemiter'] 	= INC_PATH_DELEM;

	$c = new Config();
	$root =& $c->parseConfig($cfg, 'phparray');
	$c->writeConfig('../../custom/config.php', 'phparray', array('name' => 'cfg'));
	unset($cfg);
	///////////////////////////////////////////////////////////////////////////
	require_once('../../custom/config.php');//конфигуратор сайта
	require_once('../../fw_config.php');//конфигуратор framework'а
	//require_once($cfg['fw_path'].'lib/class.tplengine.php');
	require_once($cfg['fw_path'].'lib/class.controller.php');
	require_once($cfg['fw_path'].'lib/module.core.inc.php');
	require_once($cfg['fw_path'].'lib/lib.php');
	require_once($cfg['fw_path'].'lib/security.inc.php');

	require_once('db.php');
	$db = DB::connect('mysql://'.$cfg['db_user'].':'.$cfg['db_password'].'@'.$cfg['db_server'].'/'.$cfg['db_name']);
	if (DB::isError($db)) {die ($db->getMessage());	}
	$db->query("set character_set_client='utf8'");
	$db->query("set character_set_results='utf8'");
	$db->query("set collation_connection='utf8_general_ci'");
	/**
    * 1. Инсталлируем самые необходимые модули
    * 
    */
	echo "Инсталляция ядра CMS<br>";
	if (isset($_POST['tableDel'])) $tableDel = true; else $tableDel = false;
	try {
		define ("FW_MODULES_DIR",$cfg['fw_path'].'/modules/');
		require_once(FW_MODULES_DIR.'partition/module.partition.php');
		ModulePartitionAdmin::Install($cfg,$db,$tableDel);
		require_once(FW_MODULES_DIR.'pages/module.pages.php');
		ModulePagesAdmin::Install($cfg,$db,$tableDel);
		require_once(FW_MODULES_DIR.'templates/module.templates.php');
		ModuleTemplatesAdmin::Install($cfg,$db,$tableDel);
		require_once(FW_MODULES_DIR.'counter/module.counter.php');
		ModuleCounterAdmin::Install($cfg,$db,$tableDel);
		
	} catch (fwException $e) {
		die('Во время установки модулей произошла ошибка: '.$e->getMessage()."<br>");
	}
	echo "Ядро успешно инсталлировано<br>";
	/**
    * 2. Создание разделов
    * 
    */
	echo "Создание первичных страниц сайта<br>";

	@require_once($cfg['admin_path'].'admincontroller.php');
	$ac = &new AdminController();
	$t = &new ModuleTemplatesAdmin($ac);
	$tplId = $t->CreateTemplate("index_tpl.html",0,"Главный шаблон");
	$f = fopen($cfg['admin_path'].'install/index_tpl.html','r') or die("Не могу открыть файл ".$cfg['fw_path'].'install/index_tpl.html');
	$contents = fread ($f, filesize ($cfg['admin_path'].'install/index_tpl.html'));
	fclose ($f);
	$t->SetTemplate("index_tpl.html",$contents);
	echo "Шаблон создан<br>";

	$pages = & new ModulePagesAdmin($ac);
	$PageId1 = $pages->AddFile("Файл главной страницы");
	$pages->SetFile($PageId1,"Главная страница сайта");
	$PageId2 = $pages->AddFile("Файл 2-ой страницы");
	$pages->SetFile($PageId2,"Вторая страница сайта");
	echo "Страницы успешно созданы<br>";

	$p = & new ModulePartitionAdmin($ac);
	
	//$p->addDocument('','Заголовок','Описание','Ключевые, слова',0,0,1);
	$p->addDocument('index.html','Главная страница сайта','Это главная страница сайта','Ключевые, слова',$PageId1,$tplId,-1,1);
	$pId = $p->addPartition('dir');
	$p->addDocument('page1.html','Вторая страница сайта','Это главная страница сайта','Ключевые, слова',$PageId2,$tplId,$pId,1);
	
	/**
	 * 3. Инсталляция дополнительных модулей
	 * 
	 */
	class cfgWrapper{ public $cfg;};
	$cw = new cfgWrapper();
	$cw->cfg = &$cfg;
	
	if (isset($_POST['modules']))
	{
		foreach ($_POST['modules'] as $mod) {
			require_once(FW_MODULES_DIR.$mod.'/module.'.$mod.'.php');
			$modName = 'Module'.$mod.'Admin';
			call_user_func(array($modName, 'Install'),$cfg,$db,$tableDel,$cw);
			//$modName($cfg,$db,$tableDel);
		}
		echo "Дополнительные модули успешно установлены<br>";
	}
	/**
	 * 4. перепишем заново config
	 * 
	 */
	$c = new Config();
	$root =& $c->parseConfig($cfg, 'phparray');
	$c->writeConfig('../../config.php', 'phparray', array('name' => 'cfg'));
	unset($cfg);

	echo "Инсталляция успешно завершена<br>";
?>
</div>
</body>
</html>